//----------DDVDAQ.cc----------//

#include "DDVDAQ.hh"
#include <string>
#include <iostream>
#include <set>

//==========Sets and gets==========//
//-----config-----//
void DDVDAQ::general_config::set_base_filename(std::string base_filename_arg)
{
    base_filename = base_filename_arg;
}

std::string DDVDAQ::general_config::get_base_filename(void)
{
    return base_filename;
}


void DDVDAQ::general_config::set_output_type(std::string output_type_arg)
{
    output_type = output_type_arg;
}

std::string DDVDAQ::general_config::get_output_type(void)
{
    return output_type;
}


set<int>* DDVDAQ::general_config::get_channels(void)
{
  return &channels;
}

void DDVDAQ::general_config::set_num_traces_requested(unsigned int num_traces_requested_arg)
{
  num_traces_requested = num_traces_requested_arg;
}

unsigned int DDVDAQ::general_config::get_num_traces_requested(void)
{
  return num_traces_requested;
}

//-----header-----//

//---All Channels---//
void DDVDAQ::general_header::set_num_traces(unsigned int num_traces_arg)
{
  num_traces = num_traces_arg;
}
unsigned int DDVDAQ::general_header::get_num_traces(void)
{
  return num_traces;
}
void DDVDAQ::general_header::set_num_channels(unsigned int num_channels_arg)
{
  num_channels = num_channels_arg;
}
unsigned int DDVDAQ::general_header::get_num_channels(void)
{
  return num_channels;
}

//---Channel Specific---//
void DDVDAQ::general_header::set_samples_per_trace(int channel, unsigned int samples_per_trace_arg)
{
  samples_per_trace[channel] = samples_per_trace_arg;
}
unsigned int DDVDAQ::general_header::get_samples_per_trace(int channel)
{
  return samples_per_trace[channel];
}

void DDVDAQ::general_header::set_bits_per_sample(int channel, unsigned int bits_per_sample_arg)
{
  bits_per_sample[channel] = bits_per_sample_arg;
}
unsigned int DDVDAQ::general_header::get_bits_per_sample(int channel)
{
  return bits_per_sample[channel];
}

void DDVDAQ::general_header::set_time_per_sample(int channel, double time_per_sample_arg)
{
  time_per_sample[channel] = time_per_sample_arg;
}
double DDVDAQ::general_header::get_time_per_sample(int channel)
{
  return time_per_sample[channel];
}

void DDVDAQ::general_header::set_trigger_offset(int channel, double trigger_offset_arg)
{
  trigger_offset[channel] = trigger_offset_arg;
}
double DDVDAQ::general_header::get_trigger_offset(int channel)
{
  return trigger_offset[channel];
}

void DDVDAQ::general_header::set_volts_per_sample(int channel, double volts_per_sample_arg)
{
  volts_per_sample[channel] = volts_per_sample_arg;
}
double DDVDAQ::general_header::get_volts_per_sample(int channel)
{
  return volts_per_sample[channel];
}

void DDVDAQ::general_header::set_voltage_offset(int channel, double voltage_offset_arg)
{
  voltage_offset[channel] = voltage_offset_arg;
}
double DDVDAQ::general_header::get_voltage_offset(int channel)
{
  return voltage_offset[channel];
}


//----------DDVDAQ.cc----------//























